[INFO] cloning repository https://github.com/GeniePod/genie-claw
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/GeniePod/genie-claw" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGeniePod%2Fgenie-claw", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGeniePod%2Fgenie-claw'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9a42e0426cd3203e1a00722432af959bb42b66df
[INFO] testing GeniePod/genie-claw against master#cced03bfd61a304243a34504618ecec86c17063f for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGeniePod%2Fgenie-claw" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-0-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/GeniePod/genie-claw
[INFO] finished tweaking git repo https://github.com/GeniePod/genie-claw
[INFO] tweaked toml for git repo https://github.com/GeniePod/genie-claw written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/GeniePod/genie-claw on toolchain cced03bfd61a304243a34504618ecec86c17063f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/GeniePod/genie-claw already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cc v1.2.59
[INFO] [stderr]   Downloaded hashlink v0.11.0
[INFO] [stderr]   Downloaded arraydeque v0.5.1
[INFO] [stderr]   Downloaded indexmap v2.13.1
[INFO] [stderr]   Downloaded yaml-rust2 v0.11.0
[INFO] [stderr]   Downloaded tokio v1.51.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bc5b42e35ed40aca74a8204834dbbcfd4a0b38aaf57d3106d3ed328c9feb1dab
[INFO] running `Command { std: "docker" "start" "-a" "bc5b42e35ed40aca74a8204834dbbcfd4a0b38aaf57d3106d3ed328c9feb1dab", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bc5b42e35ed40aca74a8204834dbbcfd4a0b38aaf57d3106d3ed328c9feb1dab", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bc5b42e35ed40aca74a8204834dbbcfd4a0b38aaf57d3106d3ed328c9feb1dab", kill_on_drop: false }`
[INFO] [stdout] bc5b42e35ed40aca74a8204834dbbcfd4a0b38aaf57d3106d3ed328c9feb1dab
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 38a93f432fb702ad354bc03ee4f90cdfc032c9f0dd5606357154efc9310ea94f
[INFO] running `Command { std: "docker" "start" "-a" "38a93f432fb702ad354bc03ee4f90cdfc032c9f0dd5606357154efc9310ea94f", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling cc v1.2.59
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling rustls v0.23.38
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling indexmap v2.13.1
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio v1.51.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling iri-string v0.7.12
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling ed25519 v2.2.3
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling genie-skill-sdk v1.0.0-alpha.10 (/opt/rustwide/workdir/crates/genie-skill-sdk)
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling libloading v0.8.9
[INFO] [stderr]    Compiling hashlink v0.11.0
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling arraydeque v0.5.1
[INFO] [stderr]    Compiling genie-skill-hello v0.1.0 (/opt/rustwide/workdir/skills/hello-world)
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling yaml-rust2 v0.11.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling ed25519-dalek v2.2.0
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling genie-common v1.0.0-alpha.10 (/opt/rustwide/workdir/crates/genie-common)
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling genie-core v1.0.0-alpha.10 (/opt/rustwide/workdir/crates/genie-core)
[INFO] [stderr]    Compiling genie-governor v1.0.0-alpha.10 (/opt/rustwide/workdir/crates/genie-governor)
[INFO] [stderr]    Compiling genie-api v1.0.0-alpha.10 (/opt/rustwide/workdir/crates/genie-api)
[INFO] [stderr]    Compiling genie-health v1.0.0-alpha.10 (/opt/rustwide/workdir/crates/genie-health)
[INFO] [stderr]    Compiling genie-ctl v1.0.0-alpha.10 (/opt/rustwide/workdir/crates/genie-ctl)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 39s
[INFO] running `Command { std: "docker" "inspect" "38a93f432fb702ad354bc03ee4f90cdfc032c9f0dd5606357154efc9310ea94f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "38a93f432fb702ad354bc03ee4f90cdfc032c9f0dd5606357154efc9310ea94f", kill_on_drop: false }`
[INFO] [stdout] 38a93f432fb702ad354bc03ee4f90cdfc032c9f0dd5606357154efc9310ea94f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7934c93e980781bf0402f8a791bc0af88bcb8529504559993b20b0cc3d537856
[INFO] running `Command { std: "docker" "start" "-a" "7934c93e980781bf0402f8a791bc0af88bcb8529504559993b20b0cc3d537856", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling genie-skill-hello v0.1.0 (/opt/rustwide/workdir/skills/hello-world)
[INFO] [stderr]    Compiling genie-common v1.0.0-alpha.10 (/opt/rustwide/workdir/crates/genie-common)
[INFO] [stderr]    Compiling genie-skill-sdk v1.0.0-alpha.10 (/opt/rustwide/workdir/crates/genie-skill-sdk)
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling genie-health v1.0.0-alpha.10 (/opt/rustwide/workdir/crates/genie-health)
[INFO] [stderr]    Compiling genie-governor v1.0.0-alpha.10 (/opt/rustwide/workdir/crates/genie-governor)
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling genie-api v1.0.0-alpha.10 (/opt/rustwide/workdir/crates/genie-api)
[INFO] [stderr]    Compiling genie-core v1.0.0-alpha.10 (/opt/rustwide/workdir/crates/genie-core)
[INFO] [stderr]    Compiling genie-ctl v1.0.0-alpha.10 (/opt/rustwide/workdir/crates/genie-ctl)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 18s
[INFO] running `Command { std: "docker" "inspect" "7934c93e980781bf0402f8a791bc0af88bcb8529504559993b20b0cc3d537856", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7934c93e980781bf0402f8a791bc0af88bcb8529504559993b20b0cc3d537856", kill_on_drop: false }`
[INFO] [stdout] 7934c93e980781bf0402f8a791bc0af88bcb8529504559993b20b0cc3d537856
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 5cdcfea904fd1e791d92bfbf655a4660146b4bfc090b44f05c88f59b5b2c1faf
[INFO] running `Command { std: "docker" "start" "-a" "5cdcfea904fd1e791d92bfbf655a4660146b4bfc090b44f05c88f59b5b2c1faf", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.39s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/genie_api-f21e8d839cbd4aa5)
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test routes::tests::classify_sqlite_error_permanent ... ok
[INFO] [stdout] test routes::tests::classify_sqlite_error_transient ... ok
[INFO] [stdout] test routes::tests::core_proxy_addr_uses_configured_core_port ... ok
[INFO] [stdout] test routes::tests::dashboard_core_target_uses_derived_health_url ... ok
[INFO] [stdout] test http::tests::mutating_dashboard_endpoint_requires_token_when_configured ... ok
[INFO] [stdout] test routes::tests::disabled_wakeword_rows_ignore_stale_failed_systemd_state ... ok
[INFO] [stdout] test http::tests::cross_origin_is_gated_and_wildcard_is_gone ... ok
[INFO] [stdout] test routes::tests::service_rows_merge_health_and_systemd_status ... ok
[INFO] [stdout] test routes::tests::systemd_only_service_rows_mark_latency_not_applicable ... ok
[INFO] [stdout] test http::tests::oversized_request_header_is_rejected_and_server_survives ... ok
[INFO] [stdout] test routes::tests::dashboard_targets_mark_wakeword_disabled_when_config_empty ... ok
[INFO] [stdout] test routes::tests::tegrastats_returns_500_when_db_does_not_exist ... ok
[INFO] [stdout] test routes::tests::dashboard_api_target_uses_derived_status_url ... ok
[INFO] [stdout] test routes::tests::dashboard_targets_include_deployed_stack_services ... ok
[INFO] [stdout] test routes::tests::read_core_proxy_response_rejects_oversized_body ... ok
[INFO] [stdout] test http::tests::idle_connection_is_dropped_after_read_timeout ... ok
[INFO] [stdout] test http::tests::connection_flood_does_not_wedge_server ... ok
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/genie_common-bea71e3cd76e14f5)
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 100 tests
[INFO] [stdout] test config::tests::agent_profile_defaults_to_jetson_limited_context ... ok
[INFO] [stdout] test config::tests::actuation_safety_defaults_to_enabled_fail_closed_settings ... ok
[INFO] [stdout] test config::tests::actuation_safety_config_parses ... ok
[INFO] [stdout] test config::tests::api_http_addr_follows_services_api_url ... ok
[INFO] [stdout] test config::tests::api_http_addr_defaults_to_documented_port ... ok
[INFO] [stdout] test config::tests::api_status_url_defaults_to_documented_endpoint ... ok
[INFO] [stdout] test config::tests::api_service_defaults_to_documented_endpoint ... ok
[INFO] [stdout] test config::tests::configured_telegram_token_is_used ... ok
[INFO] [stdout] test config::tests::api_http_addr_rejects_https_url ... ok
[INFO] [stdout] test config::tests::configured_homeassistant_token_is_used ... ok
[INFO] [stdout] test config::tests::core_bind_host_defaults_to_localhost ... ok
[INFO] [stdout] test config::tests::core_bind_host_can_be_configured ... ok
[INFO] [stdout] test config::tests::connectivity_requires_non_none_transport ... ok
[INFO] [stdout] test config::tests::core_health_url_honors_custom_bind_host ... ok
[INFO] [stdout] test config::tests::api_status_url_normalizes_bare_authority ... ok
[INFO] [stdout] test config::tests::core_config_parses_expected_runtime_contract_hash ... ok
[INFO] [stdout] test config::tests::core_defaults_match_current_jetson_runtime ... ok
[INFO] [stdout] test config::tests::core_health_url_ignores_stale_services_core_url ... ok
[INFO] [stdout] test config::tests::core_health_url_maps_listen_all_to_loopback ... ok
[INFO] [stdout] test config::tests::core_health_url_tracks_custom_core_port ... ok
[INFO] [stdout] test config::tests::core_health_url_uses_default_port ... ok
[INFO] [stdout] test config::tests::core_http_addr_maps_listen_all_to_loopback ... ok
[INFO] [stdout] test config::tests::core_http_addr_uses_bind_host_and_port ... ok
[INFO] [stdout] test config::tests::homeassistant_is_optional_by_default ... ok
[INFO] [stdout] test config::tests::legacy_spi_connectivity_config_still_parses ... ok
[INFO] [stdout] test config::tests::http_server_config_parses_overrides ... ok
[INFO] [stdout] test config::tests::llm_service_backend_defaults_to_genie_ai_runtime ... ok
[INFO] [stdout] test config::tests::http_server_config_falls_back_when_section_absent ... ok
[INFO] [stdout] test config::tests::llm_service_backend_accepts_genie_ai_runtime ... ok
[INFO] [stdout] test config::tests::http_server_config_defaults_are_bounded ... ok
[INFO] [stdout] test config::tests::household_security_summary_redacts_raw_config ... ok
[INFO] [stdout] test config::tests::connectivity_is_disabled_by_default ... ok
[INFO] [stdout] test config::tests::only_configured_optional_services_are_managed ... ok
[INFO] [stdout] test config::tests::optional_ai_provider_is_disabled_and_limited_context_by_default ... ok
[INFO] [stdout] test config::tests::parse_service_probe_target_defaults_http_port_when_missing ... ok
[INFO] [stdout] test config::tests::parse_service_probe_target_defaults_path_when_missing ... ok
[INFO] [stdout] test config::tests::optional_ai_provider_remote_requires_explicit_allow ... ok
[INFO] [stdout] test config::tests::parse_service_probe_target_handles_ipv6_with_explicit_port ... ok
[INFO] [stdout] test config::tests::optional_ai_provider_must_fit_limited_context ... ok
[INFO] [stdout] test config::tests::optional_ai_provider_can_use_oauth_bearer_env ... ok
[INFO] [stdout] test config::tests::parse_service_probe_target_adds_default_port_to_bracketed_ipv6 ... ok
[INFO] [stdout] test config::tests::parse_service_probe_target_parses_https_with_default_port ... ok
[INFO] [stdout] test config::tests::parse_service_probe_target_keeps_trailing_slash ... ok
[INFO] [stdout] test config::tests::parse_service_probe_target_splits_http_url ... ok
[INFO] [stdout] test config::tests::parse_service_probe_target_treats_bare_url_as_http ... ok
[INFO] [stdout] test config::tests::service_unit_aliases_use_configured_units ... ok
[INFO] [stdout] test config::tests::security_posture_flags_require_signature_without_keys ... ok
[INFO] [stdout] test config::tests::services_api_falls_back_when_toml_omits_section ... ok
[INFO] [stdout] test config::tests::portable_agent_profile_parses ... ok
[INFO] [stdout] test config::tests::services_api_can_be_overridden_in_toml ... ok
[INFO] [stdout] test config::tests::skill_policy_config_parses ... ok
[INFO] [stdout] test config::tests::skill_execution_timeout_overridable ... ok
[INFO] [stdout] test config::tests::parse_service_probe_target_handles_bracketed_ipv6_without_path ... ok
[INFO] [stdout] test config::tests::skill_policy_defaults_to_audit_only ... ok
[INFO] [stdout] test config::tests::speaker_identity_defaults_to_disabled_none ... ok
[INFO] [stdout] test config::tests::tool_policy_defaults_to_enabled_without_rules ... ok
[INFO] [stdout] test config::tests::validate_service_url_drift_detects_core_host_mismatch ... ok
[INFO] [stdout] test config::tests::validate_service_url_drift_empty_on_aligned_defaults ... ok
[INFO] [stdout] test config::tests::skill_policy_signature_key_dir_overridable ... ok
[INFO] [stdout] test config::tests::speaker_identity_config_parses_local_biometric_provider ... ok
[INFO] [stdout] test config::tests::validate_service_url_drift_detects_stale_core_port ... ok
[INFO] [stdout] test config::tests::validate_service_url_drift_no_panic_on_defaults ... ok
[INFO] [stdout] test config::tests::speaker_identity_config_parses_fixed_provider ... ok
[INFO] [stdout] test http::tests::cross_site_origin_is_rejected_not_reflected ... ok
[INFO] [stdout] test http::tests::cors_headers_reflect_only_allowlisted_origin ... ok
[INFO] [stdout] test config::tests::validate_service_url_drift_skips_unsupported_api_scheme ... ok
[INFO] [stdout] test config::tests::web_search_defaults_to_enabled_duckduckgo ... ok
[INFO] [stdout] test config::tests::tool_policy_config_parses ... ok
[INFO] [stdout] test http::tests::configured_extras_are_allowed ... ok
[INFO] [stdout] test http::tests::loopback_host_and_origin_for_bound_port_are_allowed ... ok
[INFO] [stdout] test http::tests::missing_host_and_origin_are_allowed_for_non_browser_clients ... ok
[INFO] [stdout] test http::tests::oversized_declared_body_is_rejected ... ok
[INFO] [stdout] test http::tests::duplicate_content_length_is_rejected_with_400 ... ok
[INFO] [stdout] test http::tests::parses_post_with_body_and_origin_header ... ok
[INFO] [stdout] test http::tests::parses_simple_get ... ok
[INFO] [stdout] test http::tests::oversized_request_line_is_rejected ... ok
[INFO] [stdout] test config::tests::web_search_config_parses_searxng ... ok
[INFO] [stdout] test http::tests::token_required_only_when_configured ... ok
[INFO] [stdout] test http::tests::too_many_headers_is_rejected ... ok
[INFO] [stdout] test http::tests::rebound_host_is_rejected ... ok
[INFO] [stdout] test http::tests::total_header_bytes_cap_is_enforced ... ok
[INFO] [stdout] test http::tests::transfer_encoding_request_is_rejected_with_400 ... ok
[INFO] [stdout] test jsonl::tests::tail_lines_returns_last_entries_in_order ... ok
[INFO] [stdout] test jsonl::tests::tail_lines_skips_oversize_lines ... ok
[INFO] [stdout] test probe::tests::host_from_addr_handles_bracketed_ipv6 ... ok
[INFO] [stdout] test probe::tests::probe_http_get_accepts_plain_http_200 ... ok
[INFO] [stdout] test http::tests::unterminated_header_is_rejected_in_bounded_memory ... ok
[INFO] [stdout] test probe::tests::parse_https_service_target_uses_default_port ... ok
[INFO] [stdout] test http::tests::peer_close_before_request_is_reported ... ok
[INFO] [stdout] test http::tests::invalid_content_length_is_rejected_with_400 ... ok
[INFO] [stdout] test probe::tests::probe_http_get_accepts_keep_alive_without_eof ... ok
[INFO] [stdout] test tegrastats::tests::parse_power_draw ... ok
[INFO] [stdout] test probe::tests::probe_http_get_body_reads_content_length_without_eof ... ok
[INFO] [stdout] test tegrastats::tests::parse_cpu_cores ... ok
[INFO] [stdout] test tegrastats::tests::parse_gpu_freq_value ... ok
[INFO] [stdout] test tegrastats::tests::parse_ram_values ... ok
[INFO] [stdout] test tegrastats::tests::parse_temperatures ... ok
[INFO] [stdout] test tegrastats::tests::parse_swap_values ... ok
[INFO] [stdout] test jsonl::tests::tail_lines_handles_large_files_without_reading_whole_file ... ok
[INFO] [stdout] test http::tests::idle_connection_times_out ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 100 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/genie_core-6727dfcf4240a267)
[INFO] [stdout] 
[INFO] [stdout] running 712 tests
[INFO] [stdout] test agent_harness::tests::compact_agent_contract_passes_4096_token_budget ... ok
[INFO] [stdout] test agent_harness::tests::optional_provider_over_context_budget_fails_the_harness ... ok
[INFO] [stdout] test connectivity::tests::esp32_uart_config_reports_offline_when_serial_device_is_missing ... ok
[INFO] [stdout] test context::tests::build_context_long_conversation_truncates ... ok
[INFO] [stdout] test connectivity::tests::disabled_config_reports_disabled_health ... ok
[INFO] [stdout] test context::tests::build_context_short_conversation ... ok
[INFO] [stdout] test context::tests::build_context_with_summary ... ok
[INFO] [stdout] test context::tests::estimate_tokens_rough ... ok
[INFO] [stdout] test context::tests::summary_persistence ... ok
[INFO] [stdout] test connectivity::tests::non_tty_character_device_is_not_treated_as_uart ... ok
[INFO] [stdout] test connectivity::tests::esp32_uart_config_reports_degraded_when_serial_device_exists ... ok
[INFO] [stdout] test agent_harness::tests::oversized_memory_hydration_fails_the_harness ... ok
[INFO] [stdout] test conversation::tests::append_title_short_message_used_verbatim ... ok
[INFO] [stdout] test conversation::tests::append_title_long_ascii_truncates_with_ellipsis ... ok
[INFO] [stdout] test conversation::tests::create_and_list ... ok
[INFO] [stdout] test conversation::tests::append_title_handles_cyrillic_first_message_at_odd_byte_boundary ... ok
[INFO] [stdout] test conversation::tests::append_returns_error_on_readonly_db ... ok
[INFO] [stdout] test conversation::tests::truncate_at_char_boundary_walks_back_to_a_char_edge ... ok
[INFO] [stdout] test eval::bfcl::tests::allows_extra_arguments_when_case_allows ... ok
[INFO] [stdout] test conversation::tests::append_and_get ... ok
[INFO] [stdout] test eval::bfcl::tests::bfcl_llm_catalog_matches_runtime_home_control_schema ... ok
[INFO] [stdout] test eval::bfcl::tests::detects_missing_argument ... ok
[INFO] [stdout] test eval::bfcl::tests::detects_wrong_tool_name ... ok
[INFO] [stdout] test conversation::tests::append_title_truncates_emoji_first_message_without_panic ... ok
[INFO] [stdout] test eval::bfcl::tests::fidelity_guard_rejects_foreign_and_deviceless_rooms ... ok
[INFO] [stdout] test eval::bfcl::tests::grounded_metric_credits_action_synonym ... ok
[INFO] [stdout] test eval::bfcl::tests::jsonl_fixture_covers_all_static_builtin_tools ... ok
[INFO] [stdout] test eval::bfcl::tests::grounded_metric_credits_underspecified_entity ... ok
[INFO] [stdout] test eval::bfcl::tests::loads_optional_source_metadata_for_license_audit ... ok
[INFO] [stdout] test eval::bfcl::tests::rejects_extra_arguments_by_default ... ok
[INFO] [stdout] test eval::bfcl::tests::scores_exact_tool_call ... ok
[INFO] [stdout] test conversation::tests::auto_title_from_first_message ... ok
[INFO] [stdout] test eval::bfcl::tests::scores_no_tool_case ... ok
[INFO] [stdout] test eval::bfcl::tests::reference_home_unifies_light_variants_but_separates_blinds ... ok
[INFO] [stdout] test ha::client::tests::chunked_body_aggregate_size_is_capped ... ok
[INFO] [stdout] test ha::client::tests::oversize_content_length_is_rejected ... ok
[INFO] [stdout] test ha::client::tests::parse_http_url_defaults_port ... ok
[INFO] [stdout] test ha::client::tests::parse_http_url_rejects_https ... ok
[INFO] [stdout] test ha::client::tests::parse_http_url_with_api_path ... ok
[INFO] [stdout] test ha::client::tests::read_to_eof_response_is_size_capped ... ok
[INFO] [stdout] test ha::policy::tests::allows_basic_light_control ... ok
[INFO] [stdout] test ha::policy::tests::requires_confirmation_for_locks ... ok
[INFO] [stdout] test eval::bfcl::tests::loads_jsonl_fixture_and_scores_report ... ok
[INFO] [stdout] test ha::policy::tests::requires_confirmation_for_opening_garage_cover ... ok
[INFO] [stdout] test ha::policy::tests::runtime_gate_blocks_low_confidence_target ... ok
[INFO] [stdout] test ha::policy::tests::runtime_gate_blocks_sensitive_multi_target_actions ... ok
[INFO] [stdout] test ha::policy::tests::runtime_gate_allows_safe_available_low_risk_action ... ok
[INFO] [stdout] test ha::provider::tests::brightness_percent_maps_to_255_scale ... ok
[INFO] [stdout] test ha::provider::tests::infer_domain_from_household_language ... ok
[INFO] [stdout] test ha::provider::tests::resolve_exact_entity_id_before_fuzzy_matching ... ok
[INFO] [stdout] test ha::provider::tests::resolve_group_target_by_area_and_domain ... ok
[INFO] [stdout] test ha::provider::tests::resolve_scene_for_activate_prefers_scene ... ok
[INFO] [stdout] test ha::provider::tests::resolve_domain_target_for_whole_home_status ... ok
[INFO] [stdout] test llm::mock::tests::backend_name_is_mock_and_health_is_true ... ok
[INFO] [stdout] test llm::mock::tests::fallback_kicks_in_after_exhaustion ... ok
[INFO] [stdout] test llm::mock::tests::returns_scripted_replies_in_order ... ok
[INFO] [stdout] test conversation::tests::delete_conversation ... ok
[INFO] [stdout] test llm::mock::tests::stream_emits_tokens_and_returns_full_reply ... ok
[INFO] [stdout] test llm::openai_compat::tests::accepts_valid_content_length_response ... ok
[INFO] [stdout] test conversation::tests::ensure_stable_conversation_id_is_idempotent ... ok
[INFO] [stdout] test conversation::tests::export_json ... ok
[INFO] [stdout] test llm::openai_compat::tests::backend_error_message_truncates_non_json_unicode_body ... ok
[INFO] [stdout] test llm::openai_compat::tests::compacted_system_prompt_prefix_cache_uses_household_context_boundary ... ok
[INFO] [stdout] test llm::openai_compat::tests::backend_error_message_extracts_nested_and_top_level_message ... ok
[INFO] [stdout] test llm::openai_compat::tests::flatten_system_prompt_into_first_user_message ... ok
[INFO] [stdout] test llm::openai_compat::tests::from_secs_clamps_zero_to_keep_a_bound ... ok
[INFO] [stdout] test llm::openai_compat::tests::bearer_auth_header_is_sent_on_chat_requests ... ok
[INFO] [stdout] test llm::openai_compat::tests::default_timeouts_are_bounded ... ok
[INFO] [stdout] test llm::openai_compat::tests::deserialize_chat_response ... ok
[INFO] [stdout] test llm::openai_compat::tests::detect_system_role_error_message ... ok
[INFO] [stdout] test llm::openai_compat::tests::generic_request_profile_keeps_full_default_body ... ok
[INFO] [stdout] test llm::openai_compat::tests::generic_request_profile_omits_runtime_hints ... ok
[INFO] [stdout] test llm::openai_compat::tests::genie_runtime_compaction_falls_back_to_latest_non_system_message ... ok
[INFO] [stdout] test llm::openai_compat::tests::genie_runtime_profile_serializes_session_and_cache_hints ... ok
[INFO] [stdout] test llm::openai_compat::tests::genie_runtime_profile_serializes_system_prompt_prefix_cache_hint ... ok
[INFO] [stdout] test llm::openai_compat::tests::genie_runtime_profile_compacts_runtime_prompt_under_4k_budget ... ok
[INFO] [stdout] test llm::openai_compat::tests::parse_http_status ... ok
[INFO] [stdout] test llm::openai_compat::tests::parse_url ... ok
[INFO] [stdout] test conversation::tests::get_recent_limits ... ok
[INFO] [stdout] test llm::openai_compat::tests::serialize_chat_request ... ok
[INFO] [stdout] test llm::openai_compat::tests::rejects_oversize_content_length ... ok
[INFO] [stdout] test llm::openai_compat::tests::runtime_session_ids_are_sanitized_for_cache_files ... ok
[INFO] [stdout] test llm::openai_compat::tests::genie_runtime_profile_compacts_large_core_prompt ... ok
[INFO] [stdout] test llm::openai_compat::tests::read_to_eof_response_is_size_capped ... ok
[INFO] [stdout] test llm::openai_compat::tests::system_prompt_prefix_cache_key_ignores_dynamic_household_context ... ok
[INFO] [stdout] test llm::openai_compat::tests::truncate_body_does_not_panic_on_multibyte_boundary ... ok
[INFO] [stdout] test llm::openai_compat::tests::truncate_body_returns_short_bodies_untouched ... ok
[INFO] [stdout] test llm::provider::tests::disabled_provider_has_no_plan ... ok
[INFO] [stdout] test llm::provider::tests::local_openai_compatible_provider_can_be_ready ... ok
[INFO] [stdout] test llm::provider::tests::loopback_127_range_allowed_without_remote_flag ... ok
[INFO] [stdout] test llm::provider::tests::loopback_looking_hostname_requires_remote_allow ... ok
[INFO] [stdout] test llm::provider::tests::oauth_provider_uses_oauth_token_env_for_readiness ... ok
[INFO] [stdout] test llm::provider::tests::remote_provider_requires_explicit_allow_and_budget_fit ... ok
[INFO] [stdout] test llm::tests::can_construct_genie_ai_runtime_client ... ok
[INFO] [stdout] test llm::tests::can_construct_openai_compatible_bearer_client ... ok
[INFO] [stdout] test llm::tests::legacy_constructor_keeps_llama_cpp_default ... ok
[INFO] [stdout] test memory::decay::tests::bm25_negative_rank ... ok
[INFO] [stdout] test memory::decay::tests::bm25_positive_rank ... ok
[INFO] [stdout] test memory::decay::tests::bm25_zero_rank ... ok
[INFO] [stdout] test llm::tests::service_config_selects_genie_ai_runtime_backend ... ok
[INFO] [stdout] test memory::decay::tests::decay_at_half_life_is_half ... ok
[INFO] [stdout] test memory::decay::tests::decay_at_double_half_life_is_quarter ... ok
[INFO] [stdout] test memory::decay::tests::decay_at_zero_is_one ... ok
[INFO] [stdout] test memory::decay::tests::decay_curve_values ... ok
[INFO] [stdout] test memory::decay::tests::decay_with_zero_half_life_returns_one ... ok
[INFO] [stdout] test memory::embedding::tests::local_hash_embedding_is_stable_and_normalized ... ok
[INFO] [stdout] test memory::extract::tests::explicit_remember ... ok
[INFO] [stdout] test memory::embedding::tests::home_semantic_expansion_links_cold_to_thermostat ... ok
[INFO] [stdout] test memory::extract::tests::extract_age ... ok
[INFO] [stdout] test memory::extract::tests::extract_favorite ... ok
[INFO] [stdout] test memory::extract::tests::extract_job ... ok
[INFO] [stdout] test memory::extract::tests::extract_multiple_facts ... ok
[INFO] [stdout] test memory::extract::tests::extract_location ... ok
[INFO] [stdout] test memory::extract::tests::extract_name ... ok
[INFO] [stdout] test memory::extract::tests::extract_name_call_me ... ok
[INFO] [stdout] test memory::extract::tests::extract_nothing ... ok
[INFO] [stdout] test memory::extract::tests::extract_occupation ... ok
[INFO] [stdout] test memory::extract::tests::extract_nothing_from_question ... ok
[INFO] [stdout] test memory::extract::tests::extract_preference_dislike ... ok
[INFO] [stdout] test memory::extract::tests::extract_preference_like ... ok
[INFO] [stdout] test memory::extract::tests::extract_relationship ... ok
[INFO] [stdout] test memory::extract::tests::remember_that_stripped ... ok
[INFO] [stdout] test memory::extract::tests::no_false_positive_im_a ... ok
[INFO] [stdout] test ha::client::tests::slow_server_within_budget_succeeds ... ok
[INFO] [stdout] test memory::extract::tests::auto_store_rejects_password_memory ... ok
[INFO] [stdout] test memory::inject::tests::inject_deduplicates ... ok
[INFO] [stdout] test memory::inject::tests::inject_empty_db ... ok
[INFO] [stdout] test memory::inject::tests::inject_skips_restricted_memory ... ok
[INFO] [stdout] test memory::inject::tests::hydration_drops_lower_priority_entries_before_preferences ... ok
[INFO] [stdout] test memory::inject::tests::injection_uses_persisted_policy_metadata ... ok
[INFO] [stdout] test memory::policy::tests::cautious_memory_is_classified_sensitive ... ok
[INFO] [stdout] test memory::policy::tests::household_access_code_memory_is_rejected ... ok
[INFO] [stdout] test memory::policy::tests::household_memory_can_be_spoken_in_shared_room ... ok
[INFO] [stdout] test memory::policy::tests::infers_person_scope_from_kind ... ok
[INFO] [stdout] test memory::policy::tests::password_memory_is_rejected ... ok
[INFO] [stdout] test memory::policy::tests::person_memory_needs_name_or_identity_confidence ... ok
[INFO] [stdout] test memory::policy::tests::private_memory_is_not_spoken_in_shared_room ... ok
[INFO] [stdout] test memory::policy::tests::sensitive_location_memory_is_rejected ... ok
[INFO] [stdout] test memory::recall::tests::consolidation_scaling ... ok
[INFO] [stdout] test memory::recall::tests::default_weights_sum_to_one ... ok
[INFO] [stdout] test memory::recall::tests::diversity_scaling ... ok
[INFO] [stdout] test llm::openai_compat::tests::non_streaming_body_read_times_out_on_stalled_backend ... ok
[INFO] [stdout] test llm::openai_compat::tests::streaming_read_times_out_on_stalled_backend ... ok
[INFO] [stdout] test memory::recall::tests::fusion_boosts_ids_present_in_both_rankings ... ok
[INFO] [stdout] test memory::recall::tests::fusion_deduplicates_ids ... ok
[INFO] [stdout] test memory::recall::tests::fusion_keeps_semantic_hit_when_lexical_fills_the_limit ... ok
[INFO] [stdout] test memory::inject::tests::inject_identity_always_present ... ok
[INFO] [stdout] test memory::inject::tests::hydration_respects_700_token_budget ... ok
[INFO] [stdout] test memory::inject::tests::person_memory_needs_identity_context ... ok
[INFO] [stdout] test memory::inject::tests::inject_query_relevant ... ok
[INFO] [stdout] test memory::recall::tests::dream_cycle_integration ... ok
[INFO] [stdout] test ha::client::tests::hung_server_after_connect_times_out_cleanly ... ok
[INFO] [stdout] test memory::recall::tests::filter_recall_results_respects_person_scope ... ok
[INFO] [stdout] test memory::tests::app_only_secret_reference_matches_locker_combo_query_without_value ... ok
[INFO] [stdout] test memory::recall::tests::recall_with_context_uses_semantic_hits_when_lexical_query_misses ... ok
[INFO] [stdout] test memory::tests::app_only_secret_reference_indexes_without_revealing_value ... ok
[INFO] [stdout] test memory::tests::access_permissions_index_denied_and_allowed_unlock_targets ... ok
[INFO] [stdout] test memory::tests::app_only_secret_reference_matches_travel_and_bill_numbers_without_value ... ok
[INFO] [stdout] test memory::tests::app_only_secret_reference_matches_lock_combo_query_without_value ... ok
[INFO] [stdout] test memory::tests::appliance_outdoor_media_structured_recall_answers_exact_questions ... ok
[INFO] [stdout] test memory::tests::count_memories ... ok
[INFO] [stdout] test memory::tests::delete_promoted_memory_refreshes_root_file ... ok
[INFO] [stdout] test memory::tests::delete_writes_delete_event ... ok
[INFO] [stdout] test memory::tests::contextual_family_routines_answer_exact_and_fts_questions ... ok
[INFO] [stdout] test memory::tests::device_alias_allows_room_alias_for_explicit_target_marker ... ok
[INFO] [stdout] test memory::tests::contextual_family_routines_second_batch_answer_exact_and_fts_questions ... ok
[INFO] [stdout] test memory::tests::device_alias_collision_prefers_evergreen_over_promoted ... ok
[INFO] [stdout] test memory::tests::contextual_family_routines_fifth_batch_answer_exact_and_fts_questions ... ok
[INFO] [stdout] test memory::tests::contextual_family_routines_third_batch_answer_exact_and_fts_questions ... ok
[INFO] [stdout] test memory::tests::device_alias_collision_uses_stable_precedence_not_updated_ms ... ok
[INFO] [stdout] test memory::tests::device_alias_collision_prefers_promoted_memory ... ok
[INFO] [stdout] test memory::tests::device_alias_memory_indexes_exact_target ... ok
[INFO] [stdout] test memory::tests::contextual_family_routines_fourth_batch_answer_exact_and_fts_questions ... ok
[INFO] [stdout] test memory::tests::device_aliases_rebuild_on_reopen ... ok
[INFO] [stdout] test memory::tests::expanded_household_notes_cover_grill_candles_vet_and_protected_account_codes ... ok
[INFO] [stdout] test memory::tests::evergreen_memories_dont_decay ... ok
[INFO] [stdout] test memory::tests::expanded_household_notes_cover_appliance_travel_network_and_bank_login ... ok
[INFO] [stdout] test memory::tests::expanded_household_notes_cover_finance_diy_vehicle_warranty_and_guest_secret ... ok
[INFO] [stdout] test memory::tests::expanded_household_notes_cover_passport_appliance_photo_warranty_and_printer_secret ... ok
[INFO] [stdout] test memory::tests::expanded_household_notes_cover_inventory_meals_recipes_and_lists ... ok
[INFO] [stdout] test memory::tests::expanded_household_notes_cover_safety_school_contractors_storage_and_glaze ... ok
[INFO] [stdout] test memory::tests::expanded_household_notes_cover_travel_home_manuals_and_paint ... ok
[INFO] [stdout] test memory::tests::expanded_household_notes_cover_tools_receipts_and_deck_stain ... ok
[INFO] [stdout] test memory::tests::expanded_household_notes_cover_pet_gift_paint_and_storage ... ok
[INFO] [stdout] test memory::tests::expanded_household_notes_cover_receipts_storage_game_manuals_and_xbox_secret ... ok
[INFO] [stdout] test memory::tests::family_calendar_indexes_and_answers_piano_lesson ... ok
[INFO] [stdout] test memory::tests::expanded_household_notes_cover_vehicle_documents_tax_cooking_and_sensitive_codes ... ok
[INFO] [stdout] test memory::tests::fts_updates_when_content_changes ... ok
[INFO] [stdout] test memory::tests::fts_rebuild_restores_consistency ... ok
[INFO] [stdout] test memory::tests::garden_health_logistics_structured_recall_answers_exact_questions ... ok
[INFO] [stdout] test memory::tests::has_similar_is_parameterized_for_quotes ... ok
[INFO] [stdout] test memory::tests::finance_program_guide_and_health_recall_answer_exact_questions ... ok
[INFO] [stdout] test memory::tests::household_inventory_and_calendar_answer_grocery_travel_questions ... ok
[INFO] [stdout] test memory::tests::household_profiles_schedules_and_events_answer_seasonal_finance_questions ... ok
[INFO] [stdout] test memory::tests::household_notes_answer_note_and_storage_questions ... ok
[INFO] [stdout] test memory::tests::household_notes_index_and_search_fts ... ok
[INFO] [stdout] test memory::tests::household_rules_answer_allergy_and_screen_time ... ok
[INFO] [stdout] test memory::tests::household_rules_answer_homework_rules ... ok
[INFO] [stdout] test memory::tests::household_profiles_rebuild_on_reopen ... ok
[INFO] [stdout] test memory::tests::household_notes_rebuild_on_reopen ... ok
[INFO] [stdout] test memory::tests::household_schedules_and_event_logs_answer_school_and_security_questions ... ok
[INFO] [stdout] test memory::tests::managed_update_refreshes_household_profile_role ... ok
[INFO] [stdout] test memory::tests::list_managed_reports_namespace_and_canonical_note ... ok
[INFO] [stdout] test memory::tests::household_task_logs_and_schedules_answer_chore_school_bill_and_recycling ... ok
[INFO] [stdout] test memory::tests::mark_promoted ... ok
[INFO] [stdout] test memory::tests::media_profile_indexes_and_resolves_playlist ... ok
[INFO] [stdout] test memory::tests::normal_password_memory_is_not_indexed_as_shared_note ... ok
[INFO] [stdout] test memory::tests::media_profile_rebuilds_on_reopen ... ok
[INFO] [stdout] test memory::tests::open_does_not_mark_migration_degraded_on_fresh_db ... ok
[INFO] [stdout] test memory::tests::open_backfills_policy_columns_for_existing_rows ... ok
[INFO] [stdout] test memory::tests::private_household_note_is_not_indexed ... ok
[INFO] [stdout] test memory::tests::private_device_alias_memory_is_not_indexed ... ok
[INFO] [stdout] test memory::tests::private_relationship_memory_is_not_indexed_as_household_profile ... ok
[INFO] [stdout] test memory::tests::open_marks_migration_degraded_when_fts_rebuild_fails ... ok
[INFO] [stdout] test memory::tests::profile_attribute_memory_indexes_age_and_preferences ... ok
[INFO] [stdout] test memory::tests::promotion_does_not_write_person_memory_to_root_file ... ok
[INFO] [stdout] test memory::tests::promotion_redacts_person_memory_in_namespace_note ... ok
[INFO] [stdout] test memory::tests::promotion_candidates ... ok
[INFO] [stdout] test memory::tests::prune_decayed_uses_last_access_not_creation_time ... ok
[INFO] [stdout] test memory::tests::promotion_writes_root_memory_file ... ok
[INFO] [stdout] test memory::tests::promotion_writes_namespace_note_for_household_memory ... ok
[INFO] [stdout] test memory::tests::rebuild_leaves_no_staging_artifacts_on_success ... ok
[INFO] [stdout] test memory::tests::recall_count_increments ... ok
[INFO] [stdout] test memory::tests::rebuild_preserves_original_files_until_all_writes_succeed ... ok
[INFO] [stdout] test memory::tests::rebuild_recovers_from_mid_crash_sidelined_backup ... ok
[INFO] [stdout] test memory::tests::recent_memories ... ok
[INFO] [stdout] test memory::tests::relationship_memory_indexes_household_profile_role ... ok
[INFO] [stdout] test memory::tests::recall_tracking_records_query_diversity_without_duplicates ... ok
[INFO] [stdout] test memory::tests::reorder_managed_rebuilds_promoted_root_order ... ok
[INFO] [stdout] test memory::tests::search_handles_question_words_and_apostrophes ... ok
[INFO] [stdout] test memory::tests::secret_like_notes_are_not_indexed_as_speakable_fts_notes ... ok
[INFO] [stdout] test memory::tests::semantic_search_links_cold_to_thermostat_preference ... ok
[INFO] [stdout] test memory::tests::semantic_embeddings_rebuild_on_reopen ... ok
[INFO] [stdout] test memory::tests::semantic_search_links_activity_car_printer_recipe_and_comfort_media ... ok
[INFO] [stdout] test memory::tests::semantic_search_links_contextual_family_routines_and_safety ... ok
[INFO] [stdout] test memory::tests::semantic_search_links_chores_utilities_education_and_contextual_decisions ... ok
[INFO] [stdout] test memory::tests::semantic_search_links_appliance_outdoor_finance_and_media_context ... ok
[INFO] [stdout] test memory::tests::semantic_search_links_finance_diy_wardrobe_and_service_booking_context ... ok
[INFO] [stdout] test memory::tests::semantic_search_links_lunchbox_snacks ... ok
[INFO] [stdout] test memory::tests::semantic_search_links_garden_health_logistics_and_substitutions ... ok
[INFO] [stdout] test memory::tests::semantic_search_links_robot_movie_hint ... ok
[INFO] [stdout] test memory::tests::semantic_search_links_grocery_travel_and_maintenance_context ... ok
[INFO] [stdout] test memory::tests::semantic_search_links_vehicle_appliance_creative_and_emergency_context ... ok
[INFO] [stdout] test memory::tests::semantic_search_links_seasonal_education_finance_and_social_coordination ... ok
[INFO] [stdout] test memory::tests::semantic_search_links_contextual_household_controls_and_reports ... ok
[INFO] [stdout] test memory::tests::shopping_list_indexes_pending_items_and_counts ... ok
[INFO] [stdout] test memory::tests::shopping_list_removed_items_stop_showing_as_pending ... ok
[INFO] [stdout] test memory::tests::semantic_search_links_school_inventory_social_and_complex_context ... ok
[INFO] [stdout] test memory::tests::store_and_search ... ok
[INFO] [stdout] test memory::tests::store_resolved_replaces_favorite_value_by_subject ... ok
[INFO] [stdout] test memory::tests::store_persists_policy_metadata ... ok
[INFO] [stdout] test memory::tests::semantic_search_links_vehicle_work_seasonal_and_safety_context ... ok
[INFO] [stdout] test memory::tests::store_resolved_replaces_single_value_identity ... ok
[INFO] [stdout] test memory::tests::store_writes_canonical_daily_note_and_event_log ... ok
[INFO] [stdout] test memory::tests::update_managed_refreshes_promoted_root_file ... ok
[INFO] [stdout] test origin_auth::tests::constant_time_eq_matches_semantics ... ok
[INFO] [stdout] test origin_auth::tests::insert_token_overrides_and_enforces ... ok
[INFO] [stdout] test origin_auth::tests::ipv4_mapped_ipv6_loopback_is_loopback ... ok
[INFO] [stdout] test origin_auth::tests::loopback_honors_unauthenticated_privileged_header_by_default ... ok
[INFO] [stdout] test origin_auth::tests::matching_token_authenticates_from_any_peer ... ok
[INFO] [stdout] test origin_auth::tests::missing_header_is_api_floor ... ok
[INFO] [stdout] test origin_auth::tests::non_loopback_cannot_forge_privileged_origin_without_token ... ok
[INFO] [stdout] test origin_auth::tests::require_token_strips_loopback_trust ... ok
[INFO] [stdout] test origin_auth::tests::unknown_or_confirmation_header_collapses_to_api ... ok
[INFO] [stdout] test origin_auth::tests::unknown_peer_is_treated_as_untrusted ... ok
[INFO] [stdout] test origin_auth::tests::wrong_or_missing_token_downgrades_even_on_loopback ... ok
[INFO] [stdout] test ota::tests::current_version_valid ... ok
[INFO] [stdout] test ota::tests::ota_manager_paths ... ok
[INFO] [stdout] test ota::tests::version_comparison_basic ... ok
[INFO] [stdout] test ota::tests::version_comparison_with_prefix ... ok
[INFO] [stdout] test ota::tests::version_comparison_with_prerelease ... ok
[INFO] [stdout] test profile::ingest::tests::extract_kv_facts ... ok
[INFO] [stdout] test memory::tests::vehicle_market_subscription_recall_answers_exact_questions ... ok
[INFO] [stdout] test memory::tests::semantic_search_links_vehicle_health_hobbies_and_social_logistics ... ok
[INFO] [stdout] test memory::tests::vehicle_appliance_schedule_and_health_recall_answers_exact_questions ... ok
[INFO] [stdout] test profile::ingest::tests::ingest_deduplicates ... ok
[INFO] [stdout] test memory::tests::vehicle_work_seasonal_structured_recall_answers_exact_questions ... ok
[INFO] [stdout] test profile::ingest::tests::split_sentences_basic ... ok
[INFO] [stdout] test profile::ingest::tests::ingest_markdown_with_facts ... ok
[INFO] [stdout] test profile::ingest::tests::ingest_resume_key_value ... ok
[INFO] [stdout] test memory::tests::semantic_search_links_contextual_household_controls_and_reports_fourth_batch ... ok
[INFO] [stdout] test profile::ingest::tests::ingest_strips_markdown ... ok
[INFO] [stdout] test profile::ingest::tests::ingest_text_file_real ... ok
[INFO] [stdout] test profile::toml_profile::tests::deduplication ... ok
[INFO] [stdout] test prompt::tests::detect_llama ... ok
[INFO] [stdout] test profile::toml_profile::tests::load_preferences ... ok
[INFO] [stdout] test prompt::tests::detect_phi ... ok
[INFO] [stdout] test prompt::tests::detect_qwen ... ok
[INFO] [stdout] test prompt::tests::detect_nemotron ... ok
[INFO] [stdout] test prompt::tests::detect_tiny_as_small ... ok
[INFO] [stdout] test prompt::tests::detect_qwen3_4b_canonical_filename ... ok
[INFO] [stdout] test prompt::tests::detect_unknown_as_generic ... ok
[INFO] [stdout] test profile::toml_profile::tests::load_family ... ok
[INFO] [stdout] test profile::toml_profile::tests::load_identity ... ok
[INFO] [stdout] test prompt::tests::capable_prompt_has_json_format ... ok
[INFO] [stdout] test prompt::tests::prompt_guides_memory_recall_and_store_correctly ... ok
[INFO] [stdout] test prompt::tests::phi_uses_capable_prompt_shape ... ok
[INFO] [stdout] test prompt::tests::capable_prompt_requires_system_info_for_status_questions ... ok
[INFO] [stdout] test prompt_sha::tests::digest_is_64_hex_chars ... ok
[INFO] [stdout] test prompt_sha::tests::matches_published_sha256_vectors ... ok
[INFO] [stdout] test prompt_sha::tests::same_input_is_deterministic_and_differs_on_change ... ok
[INFO] [stdout] test reasoning::tests::complex_prompt_escalates_to_think ... ok
[INFO] [stdout] test reasoning::tests::explicit_think_overrides_default ... ok
[INFO] [stdout] test reasoning::tests::phi_family_is_unchanged ... ok
[INFO] [stdout] test reasoning::tests::qwen_defaults_to_no_think ... ok
[INFO] [stdout] test runtime_boundary::tests::boundaries_make_genie_claw_an_agent_layer ... ok
[INFO] [stdout] test runtime_boundary::tests::default_agent_contract_is_jetson_limited_context ... ok
[INFO] [stdout] test runtime_boundary::tests::provider_context_must_not_exceed_agent_budget ... ok
[INFO] [stdout] test runtime_contract::tests::append_runtime_contract_log_writes_jsonl_event ... ok
[INFO] [stdout] test runtime_contract::tests::contract_hash_changes_when_prompt_changes ... ok
[INFO] [stdout] test runtime_contract::tests::stable_hash_is_deterministic ... ok
[INFO] [stdout] test runtime_contract::tests::summary_exposes_compact_contract_fields ... ok
[INFO] [stdout] test runtime_contract::tests::validation_reports_unpinned_ok_and_drift ... ok
[INFO] [stdout] test runtime_mode::tests::systemd_push_to_talk_falls_back_to_http ... ok
[INFO] [stdout] test runtime_mode::tests::terminal_push_to_talk_still_runs ... ok
[INFO] [stdout] test runtime_mode::tests::voice_disabled_stays_http_only ... ok
[INFO] [stdout] test runtime_mode::tests::wakeword_voice_can_run_without_terminal ... ok
[INFO] [stdout] test security::audit::tests::audit_existing_config ... ok
[INFO] [stdout] test prompt::tests::prompt_memory_section_filters_person_scoped_memory ... ok
[INFO] [stdout] test security::audit::tests::audit_missing_config ... ok
[INFO] [stdout] test security::audit::tests::audit_world_readable_data_dir ... ok
[INFO] [stdout] test security::audit::tests::severity_ordering ... ok
[INFO] [stdout] test security::credentials::tests::credential_id_display_is_safe ... ok
[INFO] [stdout] test security::credentials::tests::missing_credential_returns_none ... ok
[INFO] [stdout] test security::credentials::tests::query_param_injection ... ok
[INFO] [stdout] test security::credentials::tests::register_and_inject_bearer ... ok
[INFO] [stdout] test security::credentials::tests::register_and_inject_custom_header ... ok
[INFO] [stdout] test security::credentials::tests::secure_string_debug_redacts ... ok
[INFO] [stdout] test security::credentials::tests::secure_string_wipes_on_drop ... ok
[INFO] [stdout] test security::credentials::tests::services_list ... ok
[INFO] [stdout] test security::env_sanitize::tests::allows_safe_vars ... ok
[INFO] [stdout] test security::env_sanitize::tests::blocks_exact_match ... ok
[INFO] [stdout] test security::env_sanitize::tests::blocks_prefix_match ... ok
[INFO] [stdout] test security::env_sanitize::tests::blocks_suffix_match ... ok
[INFO] [stdout] test security::env_sanitize::tests::case_insensitive ... ok
[INFO] [stdout] test security::env_sanitize::tests::sanitized_env_excludes_blocked ... ok
[INFO] [stdout] test security::injection::tests::clean_input ... ok
[INFO] [stdout] test security::audit::tests::audit_plaintext_secret ... ok
[INFO] [stdout] test prompt::tests::prompt_with_hello_world_limits_demo_skill_usage ... ok
[INFO] [stdout] test security::injection::tests::detects_case_insensitive ... ok
[INFO] [stdout] test security::injection::tests::detects_exfiltration ... ok
[INFO] [stdout] test security::injection::tests::detects_secret_extraction ... ok
[INFO] [stdout] test security::injection::tests::detects_instruction_override ... ok
[INFO] [stdout] test security::injection::tests::scan_and_warn_returns_match_state ... ok
[INFO] [stdout] test security::injection::tests::detects_shell_injection ... ok
[INFO] [stdout] test security::injection::tests::source_tags_are_distinct ... ok
[INFO] [stdout] test security::loop_guard::tests::different_args_are_different_calls ... ok
[INFO] [stdout] test security::loop_guard::tests::global_circuit_breaker ... ok
[INFO] [stdout] test security::loop_guard::tests::pingpong_detection ... ok
[INFO] [stdout] test security::injection::tests::whitespace_normalization_prevents_evasion ... ok
[INFO] [stdout] test security::loop_guard::tests::allows_first_call ... ok
[INFO] [stdout] test security::loop_guard::tests::reset_clears_state ... ok
[INFO] [stdout] test security::loop_guard::tests::warns_on_repeat_threshold ... ok
[INFO] [stdout] test security::sandbox::tests::extract_host_from_url ... ok
[INFO] [stdout] test security::sandbox::tests::landlock_doesnt_crash_on_any_platform ... ok
[INFO] [stdout] test security::sandbox::tests::no_false_positives_on_normal_text ... ok
[INFO] [stdout] test security::sandbox::tests::reject_loopback_looking_hostnames ... ok
[INFO] [stdout] test security::sandbox::tests::reject_remote_routes ... ok
[INFO] [stdout] test security::sandbox::tests::sanitize_github_tokens ... ok
[INFO] [stdout] test security::sandbox::tests::sanitize_api_keys ... ok
[INFO] [stdout] test security::sandbox::tests::sanitize_aws_keys ... ok
[INFO] [stdout] test security::sandbox::tests::sanitize_jwt_tokens ... ok
[INFO] [stdout] test security::sandbox::tests::sanitize_redacts_second_secret_with_same_prefix ... ok
[INFO] [stdout] test security::sandbox::tests::sanitize_redacts_secret_after_short_decoy ... ok
[INFO] [stdout] test security::taint::tests::clean_value_passes_all_sinks ... ok
[INFO] [stdout] test security::sandbox::tests::validate_localhost_routes ... ok
[INFO] [stdout] test security::taint::tests::declassify_removes_label ... ok
[INFO] [stdout] test security::taint::tests::external_network_blocked_from_tool_exec ... ok
[INFO] [stdout] test security::taint::tests::merge_propagates_labels ... ok
[INFO] [stdout] test security::taint::tests::pii_blocked_from_network ... ok
[INFO] [stdout] test security::taint::tests::secret_blocked_from_display ... ok
[INFO] [stdout] test security::taint::tests::unwrap_checked_blocks_on_violation ... ok
[INFO] [stdout] test server::tests::actuation_actions_endpoint_returns_structured_history ... ok
[INFO] [stdout] test server::tests::biased_select_cancels_slow_producer_on_consumer_exit ... ok
[INFO] [stdout] test server::tests::chat_gate_cancelled_acquire_does_not_leak_waiter ... ok
[INFO] [stdout] test prompt::tests::prompt_without_home_tools_marks_home_control_unavailable ... ok
[INFO] [stdout] test server::tests::chat_gate_tracks_turn_completion_and_liveness ... ok
[INFO] [stdout] test memory::tests::semantic_search_links_contextual_household_controls_and_reports_third_batch ... ok
[INFO] [stdout] test prompt::tests::qwen3_4b_uses_capable_prompt_shape ... ok
[INFO] [stdout] test prompt::tests::small_prompt_has_examples ... ok
[INFO] [stdout] test server::tests::chat_gate_returns_busy_when_lock_held_past_budget ... ok
[INFO] [stdout] test server::tests::chat_gate_marks_wedged_after_threshold ... ok
[INFO] [stdout] test server::tests::chat_health_recovers_after_wedged_turn_completes ... ok
[INFO] [stdout] test server::tests::is_client_disconnect_error_detects_broken_pipe ... ok
[INFO] [stdout] test server::tests::is_client_disconnect_error_detects_connection_reset ... ok
[INFO] [stdout] test server::tests::is_client_disconnect_error_does_not_match_other_io_errors ... ok
[INFO] [stdout] test server::tests::chat_path_scans_user_input_for_injection ... ok
[INFO] [stdout] test server::tests::memory_tools_preserve_raw_output ... ok
[INFO] [stdout] test server::tests::other_tools_can_still_be_summarized ... ok
[INFO] [stdout] test server::tests::overall_health_is_degraded_when_agent_harness_fails ... ok
[INFO] [stdout] test server::tests::overall_health_is_degraded_when_chat_is_wedged ... ok
[INFO] [stdout] test server::tests::overall_health_is_degraded_when_connectivity_is_offline ... ok
[INFO] [stdout] test server::tests::overall_health_is_ok_when_llm_is_up_and_connectivity_is_disabled ... ok
[INFO] [stdout] test server::tests::overall_health_is_ok_when_llm_is_up_and_connectivity_is_ready ... ok
[INFO] [stdout] test server::tests::health_endpoint_reports_llm_backend ... ok
[INFO] [stdout] test server::tests::cross_origin_and_rebound_host_are_gated_without_wildcard ... ok
[INFO] [stdout] test server::tests::plain_text_streams_immediately ... ok
[INFO] [stdout] test server::tests::local_token_gates_mutating_endpoints_and_is_injected_into_ui ... ok
[INFO] [stdout] test server::tests::short_json_waits_for_more_context ... ok
[INFO] [stdout] test server::tests::system_info_tool_preserves_raw_output ... ok
[INFO] [stdout] test server::tests::tool_json_is_buffered_for_dispatch ... ok
[INFO] [stdout] test server::tests::web_search_endpoint_rejects_empty_query ... ok
[INFO] [stdout] test server::tests::web_search_endpoint_reports_blocked_queries_structurally ... ok
[INFO] [stdout] test server::tests::web_search_endpoint_respects_disabled_config ... ok
[INFO] [stdout] test server::tests::web_search_preserves_raw_output ... ok
[INFO] [stdout] test server::tests::web_search_status_endpoint_reports_provider ... ok
[INFO] [stdout] test server::tests::runtime_contract_endpoint_reports_fingerprints ... ok
[INFO] [stdout] test server::tests::oversized_request_header_is_rejected_and_server_survives ... ok
[INFO] [stdout] test skills::loader::tests::loader_empty_dir ... ok
[INFO] [stdout] test server::tests::chat_gate_concurrent_turn_gets_busy_while_one_is_blocked ... ok
[INFO] [stdout] test skills::loader::tests::loader_invalid_so ... ok
[INFO] [stdout] test server::tests::real_server_client_disconnect_cancels_llm_producer ... ok
[INFO] [stdout] test server::tests::idle_connection_is_dropped_after_read_timeout ... ok
[INFO] [stdout] test skills::loader::tests::loader_nonexistent_dir ... ok
[INFO] [stdout] test server::tests::connection_flood_does_not_wedge_server ... ok
[INFO] [stdout] test memory::tests::semantic_search_links_contextual_household_controls_and_reports_fifth_batch ... ok
[INFO] [stdout] test skills::loader::tests::loader_policy_can_require_manifest ... ok
[INFO] [stdout] test skills::loader::tests::loader_policy_blocks_denied_manifest_permissions ... ok
[INFO] [stdout] test skills::loader::tests::loader_reads_skill_manifest_sidecar ... ok
[INFO] [stdout] test skills::loader::tests::loader_loads_and_executes_real_skill ... ok
[INFO] [stdout] test skills::loader::tests::loader_fails_closed_without_trusted_keys ... ok
[INFO] [stdout] test skills::loader::tests::loader_rejects_before_dlopen ... ok
[INFO] [stdout] test skills::loader::tests::loader_rejects_required_signature_with_junk_string ... ok
[INFO] [stdout] test skills::loader::tests::loader_rejects_empty_signature_field ... ok
[INFO] [stdout] test skills::loader::tests::execution_times_out_and_counts_as_fault ... ok
[INFO] [stdout] test skills::loader::tests::memfd_loads_library_from_bytes_not_path ... ok
[INFO] [stdout] test skills::signature::tests::empty_keys_reject_everything ... ok
[INFO] [stdout] test skills::loader::tests::policy_timeout_is_applied_to_loaded_skill ... ok
[INFO] [stdout] test skills::loader::tests::loader_rejects_unsigned_skill_with_no_manifest ... ok
[INFO] [stdout] test skills::signature::tests::junk_signature_is_rejected ... ok
[INFO] [stdout] test skills::signature::tests::malformed_keys_do_not_yield_a_trusted_posture ... ok
[INFO] [stdout] test skills::signature::tests::tampered_message_is_rejected ... ok
[INFO] [stdout] test skills::signature::tests::malformed_key_file_is_skipped ... ok
[INFO] [stdout] test skills::signature::tests::unknown_key_id_is_rejected ... ok
[INFO] [stdout] test telegram::tests::chat_lock_is_stable_per_chat_id ... ok
[INFO] [stdout] test telegram::tests::chat_locks_evict_expired_entries ... ok
[INFO] [stdout] test telegram::tests::chat_locks_fresh_entry_not_evicted ... ok
[INFO] [stdout] test telegram::tests::clean_transcript_drops_whisper_hallucinations ... ok
[INFO] [stdout] test telegram::tests::configured_language_normalizes_auto_and_blank ... ok
[INFO] [stdout] test telegram::tests::next_temp_nonce_is_unique_under_concurrent_callers ... ok
[INFO] [stdout] test telegram::tests::telegram_split_breaks_long_message ... ok
[INFO] [stdout] test telegram::tests::telegram_split_keeps_short_message ... ok
[INFO] [stdout] test telegram::tests::telegram_strip_bot_mentions ... ok
[INFO] [stdout] test telegram::tests::telegram_voice_message_deserializes ... ok
[INFO] [stdout] test telegram::tests::update_permits_clamp_to_max_parallel_voice ... ok
[INFO] [stdout] test telegram::tests::update_permits_clamp_zero_to_one ... ok
[INFO] [stdout] test telegram::tests::update_permits_enforce_max_parallel ... ok
[INFO] [stdout] test telegram::tests::voice_permits_clamp_zero_to_one ... ok
[INFO] [stdout] test telegram::tests::voice_permits_enforce_max_parallel ... ok
[INFO] [stdout] test telegram::tests::voice_reply_gate_char_count_uses_unicode_chars_not_bytes ... ok
[INFO] [stdout] test telegram::tests::voice_reply_gate_empty_text_returns_text ... ok
[INFO] [stdout] test telegram::tests::voice_reply_gate_off_returns_text ... ok
[INFO] [stdout] test telegram::tests::voice_reply_gate_over_cap_skips_with_char_count ... ok
[INFO] [stdout] test telegram::tests::voice_reply_gate_under_cap_returns_voice ... ok
[INFO] [stdout] test tools::actuation::tests::action_ledger_bounds_history ... ok
[INFO] [stdout] test tools::actuation::tests::action_ledger_hydrates_recent_actions_and_undo_state ... ok
[INFO] [stdout] test tools::actuation::tests::action_ledger_records_and_finds_undoable_action ... ok
[INFO] [stdout] test tools::actuation::tests::append_returns_ok_when_logger_is_disabled ... ok
[INFO] [stdout] test tools::actuation::tests::append_surfaces_io_error_when_parent_path_is_a_file ... ok
[INFO] [stdout] test tools::actuation::tests::append_writes_jsonl_line_with_event_fields ... ok
[INFO] [stdout] test tools::actuation::tests::audit_logger_read_returns_empty_when_file_unreadable ... ok
[INFO] [stdout] test tools::actuation::tests::audit_logger_reads_recent_executed_actions ... ok
[INFO] [stdout] test skills::signature::tests::valid_signature_verifies ... ok
[INFO] [stdout] test tools::actuation::tests::confirmation_manager_issues_and_confirms ... ok
[INFO] [stdout] test tools::actuation::tests::confirmation_tokens_are_unpredictable ... ok
[INFO] [stdout] test tools::actuation::tests::ct_eq_matches_only_identical_slices ... ok
[INFO] [stdout] test tools::actuation::tests::forged_token_is_rejected ... ok
[INFO] [stdout] test tools::actuation::tests::issue_returns_none_when_pending_cap_reached ... ok
[INFO] [stdout] test tools::actuation::tests::request_origin_parses_known_values ... ok
[INFO] [stdout] test tools::calc::tests::attacker_payload_does_not_overflow_the_stack ... ok
[INFO] [stdout] test tools::calc::tests::basic_arithmetic ... ok
[INFO] [stdout] test tools::calc::tests::chained_unary_signs ... ok
[INFO] [stdout] test tools::calc::tests::complex_expression ... ok
[INFO] [stdout] test tools::calc::tests::decimals ... ok
[INFO] [stdout] test tools::calc::tests::division_by_zero ... ok
[INFO] [stdout] test tools::actuation::tests::audit_logger_reads_recent_executed_actions_from_log_tail ... ok
[INFO] [stdout] test tools::calc::tests::existing_negative_number_cases_unchanged ... ok
[INFO] [stdout] test tools::calc::tests::negative_numbers ... ok
[INFO] [stdout] test tools::calc::tests::long_unary_run_does_not_overflow ... ok
[INFO] [stdout] test tools::calc::tests::nested_parens ... ok
[INFO] [stdout] test tools::calc::tests::non_paren_recursion_is_unaffected ... ok
[INFO] [stdout] test tools::calc::tests::parens_at_the_documented_max_depth_succeed ... ok
[INFO] [stdout] test tools::calc::tests::parens_one_past_max_depth_return_a_safe_error ... ok
[INFO] [stdout] test tools::calc::tests::realistic_complex_expression_well_below_limit_still_works ... ok
[INFO] [stdout] test tools::calc::tests::unary_minus_in_term_position ... ok
[INFO] [stdout] test tools::calc::tests::unary_minus_negates_parenthesized_group ... ok
[INFO] [stdout] test tools::dispatch::tests::action_history_hydrates_from_audit_log ... ok
[INFO] [stdout] test tools::dispatch::tests::confirm_does_not_bypass_per_origin_rate_limit ... ok
[INFO] [stdout] test tools::dispatch::tests::confirm_does_not_double_charge_when_already_paid ... ok
[INFO] [stdout] test tools::dispatch::tests::confirm_preserves_original_origin_in_audit_log ... ok
[INFO] [stdout] test tools::calc::tests::order_of_operations ... ok
[INFO] [stdout] test tools::dispatch::tests::execute_get_time ... ok
[INFO] [stdout] test tools::dispatch::tests::execute_system_info_reports_home_assistant_health ... ok
[INFO] [stdout] test tools::dispatch::tests::execute_unknown_tool ... ok
[INFO] [stdout] test skills::signature::tests::wrong_trusted_key_is_rejected ... ok
[INFO] [stdout] test tools::dispatch::tests::get_time_returns_something ... ok
[INFO] [stdout] test tools::dispatch::tests::home_control_blocks_unknown_origin_by_default ... ok
[INFO] [stdout] test tools::dispatch::tests::home_control_canonicalizes_action_synonyms ... ok
[INFO] [stdout] test tools::dispatch::tests::execute_with_context_allows_person_memory_recall ... ok
[INFO] [stdout] test tools::dispatch::tests::home_control_records_action_history ... ok
[INFO] [stdout] test tools::dispatch::tests::home_control_rate_limits_by_origin ... ok
[INFO] [stdout] test tools::dispatch::tests::home_control_respects_configured_allowed_origins ... ok
[INFO] [stdout] test tools::dispatch::tests::home_undo_reverses_last_reversible_action ... ok
[INFO] [stdout] test tools::dispatch::tests::household_role_query_ignores_non_role_topics ... ok
[INFO] [stdout] test tools::dispatch::tests::memory_forget_allows_person_scope_with_verified_context ... ok
[INFO] [stdout] test tools::dispatch::tests::memory_forget_blocks_person_scope_without_verified_context ... ok
[INFO] [stdout] test tools::dispatch::tests::home_control_resolves_structured_device_alias ... ok
[INFO] [stdout] test tools::dispatch::tests::memory_recall_accepts_topic_alias_after_schema_validation ... ok
[INFO] [stdout] test tools::dispatch::tests::memory_recall_answers_app_only_secret_reference_without_value ... ok
[INFO] [stdout] test tools::dispatch::tests::memory_recall_answers_calendar_and_access_permission ... ok
[INFO] [stdout] test tools::dispatch::tests::memory_recall_answers_household_role_from_structured_profile ... ok
[INFO] [stdout] test tools::dispatch::tests::memory_recall_answers_semantic_home_comfort_query ... ok
[INFO] [stdout] test tools::dispatch::tests::memory_recall_answers_semantic_movie_query ... ok
[INFO] [stdout] test tools::dispatch::tests::memory_recall_answers_semantic_lunchbox_query ... ok
[INFO] [stdout] test tools::dispatch::tests::memory_recall_answers_structured_household_rule ... ok
[INFO] [stdout] test tools::dispatch::tests::memory_recall_answers_typed_household_note ... ok
[INFO] [stdout] test tools::dispatch::tests::memory_recall_formats_name_answers_naturally ... ok
[INFO] [stdout] test tools::dispatch::tests::memory_recall_can_use_identity_context_when_provided ... ok
[INFO] [stdout] test tools::dispatch::tests::memory_recall_hides_person_memory_in_shared_room_context ... ok
[INFO] [stdout] test tools::dispatch::tests::memory_store_adds_shopping_list_items_with_count ... ok
[INFO] [stdout] test tools::dispatch::tests::memory_status_reports_health ... ok
[INFO] [stdout] test tools::dispatch::tests::memory_store_normalizes_name_facts ... ok
[INFO] [stdout] test tools::dispatch::tests::memory_store_rejects_high_risk_secret ... ok
[INFO] [stdout] test tools::dispatch::tests::memory_store_rejects_household_access_code ... ok
[INFO] [stdout] test tools::dispatch::tests::memory_store_updates_changed_name ... ok
[INFO] [stdout] test tools::dispatch::tests::tool_action_class_maps_side_effecting_tools ... ok
[INFO] [stdout] test tools::dispatch::tests::tool_audit_logger_disabled_appends_ok ... ok
[INFO] [stdout] test tools::dispatch::tests::tool_audit_logger_surfaces_blocked_parent_error ... ok
[INFO] [stdout] test tools::dispatch::tests::tool_audit_records_origin_and_argument_keys_without_values ... ok
[INFO] [stdout] test tools::dispatch::tests::play_media_resolves_playlist_from_memory ... ok
[INFO] [stdout] test tools::dispatch::tests::tool_defs_hide_home_tools_when_unavailable ... ok
[INFO] [stdout] test tools::dispatch::tests::tool_defs_hide_web_search_when_disabled ... ok
[INFO] [stdout] test tools::dispatch::tests::tool_defs_include_home_tools_when_available ... ok
[INFO] [stdout] test tools::dispatch::tests::tool_policy_allowlist_blocks_unspecified_tool ... ok
[INFO] [stdout] test tools::dispatch::tests::tool_policy_blocks_denied_tool_by_origin ... ok
[INFO] [stdout] test tools::home::tests::control_allows_safe_light_action ... ok
[INFO] [stdout] test tools::home::tests::control_blocks_lock_without_confirmation_flow ... ok
[INFO] [stdout] test tools::home::tests::control_blocks_low_confidence_runtime_target ... ok
[INFO] [stdout] test tools::home::tests::control_confirmation_origin_executes_sensitive_action_when_confirmed ... ok
[INFO] [stdout] test tools::home::tests::control_confirmation_origin_still_requires_confirm_when_unconfirmed ... ok
[INFO] [stdout] test tools::home::tests::control_executes_sensitive_action_once_confirmed ... ok
[INFO] [stdout] test tools::home::tests::parse_activate_alias ... ok
[INFO] [stdout] test tools::home::tests::parse_open_and_close ... ok
[INFO] [stdout] test tools::parser::tests::empty_tool_name_rejected ... ok
[INFO] [stdout] test tools::parser::tests::eval_parser_accepts_json_array_tool_calls ... ok
[INFO] [stdout] test tools::parser::tests::eval_parser_accepts_openai_tool_calls_wrapper ... ok
[INFO] [stdout] test tools::parser::tests::eval_parser_does_not_treat_answer_object_as_tool_call ... ok
[INFO] [stdout] test tools::parser::tests::nested_json_in_arguments ... ok
[INFO] [stdout] test tools::parser::tests::no_tool_call_in_normal_response ... ok
[INFO] [stdout] test tools::parser::tests::normal_prose_is_not_flagged_as_unparsed ... ok
[INFO] [stdout] test tools::parser::tests::normalize_single_key_tool_call_for_known_tool ... ok
[INFO] [stdout] test tools::parser::tests::normalize_single_key_tool_call_rejects_unknown_tool_name ... ok
[INFO] [stdout] test tools::parser::tests::parse_embedded_in_prose ... ok
[INFO] [stdout] test tools::parser::tests::parse_markdown_block_no_language ... ok
[INFO] [stdout] test tools::parser::tests::parse_markdown_code_block ... ok
[INFO] [stdout] test tools::parser::tests::parse_raw_json ... ok
[INFO] [stdout] test tools::parser::tests::parse_with_extra_fields ... ok
[INFO] [stdout] test tools::parser::tests::try_tool_call_executes_single_key_system_info_shape ... ok
[INFO] [stdout] test tools::parser::tests::unparsed_tool_call_detected_for_invalid_json ... ok
[INFO] [stdout] test tools::parser::tests::valid_tool_call_is_not_flagged_as_unparsed ... ok
[INFO] [stdout] test tools::quick::tests::availability_filter_keeps_non_home_tools ... ok
[INFO] [stdout] test tools::quick::tests::availability_filter_skips_home_status_without_home_tools ... ok
[INFO] [stdout] test tools::quick::tests::availability_filter_skips_web_search_without_search_tool ... ok
[INFO] [stdout] test tools::quick::tests::does_not_route_ambiguous_time_reference ... ok
[INFO] [stdout] test tools::quick::tests::does_not_route_home_control_commands_as_status ... ok
[INFO] [stdout] test tools::quick::tests::does_not_route_non_math_numbers ... ok
[INFO] [stdout] test tools::quick::tests::does_not_route_weather_without_location ... ok
[INFO] [stdout] test tools::quick::tests::routes_action_history_questions ... ok
[INFO] [stdout] test tools::quick::tests::routes_app_only_secret_questions_to_memory_recall ... ok
[INFO] [stdout] test tools::quick::tests::routes_basic_timer ... ok
[INFO] [stdout] test tools::quick::tests::routes_explicit_memory_search_to_memory_recall ... ok
[INFO] [stdout] test tools::quick::tests::routes_explicit_scene_and_routine_activation ... ok
[INFO] [stdout] test tools::quick::tests::routes_explicit_web_search ... ok
[INFO] [stdout] test tools::quick::tests::routes_forecast_with_explicit_location ... ok
[INFO] [stdout] test tools::quick::tests::routes_home_assistant_status_to_system_info ... ok
[INFO] [stdout] test tools::quick::tests::routes_household_note_questions_to_memory_recall ... ok
[INFO] [stdout] test tools::quick::tests::routes_household_role_questions_to_memory_recall ... ok
[INFO] [stdout] test tools::quick::tests::routes_identity_memory_questions_to_memory_recall ... ok
[INFO] [stdout] test tools::quick::tests::routes_left_home_delta_to_action_history ... ok
[INFO] [stdout] test tools::quick::tests::routes_lookup_to_web_search ... ok
[INFO] [stdout] test tools::quick::tests::routes_market_queries_to_web_search ... ok
[INFO] [stdout] test tools::quick::tests::routes_memory_health_to_memory_status ... ok
[INFO] [stdout] test tools::quick::tests::routes_percentage_math ... ok
[INFO] [stdout] test tools::quick::tests::routes_playlist_requests_to_media ... ok
[INFO] [stdout] test tools::quick::tests::routes_reminder_timer_with_label ... ok
[INFO] [stdout] test tools::quick::tests::routes_room_light_status_without_losing_room ... ok
[INFO] [stdout] test tools::quick::tests::routes_semantic_household_memory_questions_to_memory_recall ... ok
[INFO] [stdout] test tools::quick::tests::routes_shopping_and_temperature_home_requests ... ok
[INFO] [stdout] test tools::quick::tests::routes_simple_arithmetic ... ok
[INFO] [stdout] test tools::quick::tests::routes_structured_household_questions_to_memory_recall ... ok
[INFO] [stdout] test tools::quick::tests::routes_time_question_to_get_time ... ok
[INFO] [stdout] test tools::quick::tests::routes_undo_to_home_undo ... ok
[INFO] [stdout] test tools::quick::tests::routes_weather_with_explicit_location ... ok
[INFO] [stdout] test tools::quick::tests::routes_whole_home_light_status ... ok
[INFO] [stdout] test tools::system::tests::formats_load_average_triplet ... ok
[INFO] [stdout] test tools::system::tests::formats_uptime_as_hours_and_minutes ... ok
[INFO] [stdout] test tools::system::tests::prefers_live_governor_memory ... ok
[INFO] [stdout] test tools::system::tests::reports_home_assistant_connected ... ok
[INFO] [stdout] test tools::system::tests::reports_home_assistant_disabled_when_absent ... ok
[INFO] [stdout] test tools::system::tests::reports_home_assistant_unavailable_when_disconnected ... ok
[INFO] [stdout] test tools::timer::tests::check_fired_drains_expired_and_keeps_pending ... ok
[INFO] [stdout] test tools::timer::tests::set_accepts_max_duration_boundary ... ok
[INFO] [stdout] test tools::timer::tests::set_accepts_valid_duration ... ok
[INFO] [stdout] test tools::timer::tests::set_enforces_active_timer_cap ... ok
[INFO] [stdout] test tools::timer::tests::set_rejects_duration_above_cap ... ok
[INFO] [stdout] test tools::timer::tests::set_rejects_overflowing_duration ... ok
[INFO] [stdout] test tools::timer::tests::set_rejects_zero_duration ... ok
[INFO] [stdout] test tools::weather::tests::chunked_encoding_is_explicitly_rejected ... ok
[INFO] [stdout] test tools::weather::tests::geocode_request_line_contains_percent_encoded_location ... ok
[INFO] [stdout] test tools::weather::tests::hung_server_after_connect_times_out_cleanly ... ok
[INFO] [stdout] test tools::weather::tests::oversized_response_is_size_capped ... ok
[INFO] [stdout] test tools::weather::tests::url_encode_query_param_percent_encodes_reserved_chars ... ok
[INFO] [stdout] test tools::weather::tests::wmo_codes ... ok
[INFO] [stdout] test tools::web_search::tests::cache_lookup_respects_ttl ... ok
[INFO] [stdout] test tools::web_search::tests::cache_query_normalization_is_stable ... ok
[INFO] [stdout] test tools::web_search::tests::clamps_result_count ... ok
[INFO] [stdout] test tools::web_search::tests::duplicate_items_without_urls_are_not_dropped_unnecessarily ... ok
[INFO] [stdout] test tools::web_search::tests::formats_abstract_result ... ok
[INFO] [stdout] test tools::web_search::tests::formats_nested_related_topics ... ok
[INFO] [stdout] test tools::web_search::tests::formats_searxng_results ... ok
[INFO] [stdout] test tools::web_search::tests::handles_empty_results ... ok
[INFO] [stdout] test tools::web_search::tests::local_base_url_detection_allows_loopback ... ok
[INFO] [stdout] test tools::web_search::tests::private_queries_are_blocked ... ok
[INFO] [stdout] test tools::web_search::tests::searxng_base_adds_search_path ... ok
[INFO] [stdout] test tools::web_search::tests::voice_render_drops_urls_and_keeps_content ... ok
[INFO] [stdout] test voice::aec::tests::cancel_echo_no_reference ... ok
[INFO] [stdout] test voice::aec::tests::cancel_echo_with_reference ... ok
[INFO] [stdout] test voice::aec::tests::process_aec_skips_stale_reference ... ok
[INFO] [stdout] test voice::aec::tests::set_and_clear_reference ... ok
[INFO] [stdout] test voice::dsp::tests::agc_attenuates_loud_audio ... ok
[INFO] [stdout] test voice::dsp::tests::agc_ignores_silence ... ok
[INFO] [stdout] test voice::dsp::tests::agc_normalizes_quiet_audio ... ok
[INFO] [stdout] test voice::dsp::tests::process_tts_audio_roundtrip ... ok
[INFO] [stdout] test voice::dsp::tests::soft_limiter_prevents_clipping ... ok
[INFO] [stdout] test voice::dsp::tests::voice_eq_boosts_bass ... ok
[INFO] [stdout] test voice::dsp::tests::voice_eq_boosts_presence_band ... ok
[INFO] [stdout] test voice::dsp::tests::voice_eq_cuts_high_frequencies ... ok
[INFO] [stdout] test voice::dsp::tests::voice_eq_handles_short_and_silent_input ... ok
[INFO] [stdout] test voice::dsp::tests::voice_eq_presence_outranks_highs ... ok
[INFO] [stdout] test voice::format::tests::already_clean ... ok
[INFO] [stdout] test voice::format::tests::clean_special_chars ... ok
[INFO] [stdout] test voice::format::tests::empty_input ... ok
[INFO] [stdout] test voice::format::tests::strip_bold_and_italic ... ok
[INFO] [stdout] test voice::format::tests::strip_bullet_points ... ok
[INFO] [stdout] test voice::format::tests::strip_code_blocks ... ok
[INFO] [stdout] test voice::format::tests::strip_links ... ok
[INFO] [stdout] test voice::format::tests::strip_markdown_headers ... ok
[INFO] [stdout] test voice::format::tests::strip_raw_urls_from_plain_text ... ok
[INFO] [stdout] test voice::format::tests::truncate_handles_chinese_punctuation ... ok
[INFO] [stdout] test voice::format::tests::truncate_long_response ... ok
[INFO] [stdout] test voice::identity::tests::build_memory_read_context_detects_named_person_request ... ok
[INFO] [stdout] test voice::identity::tests::build_memory_read_context_detects_private_intent ... ok
[INFO] [stdout] test voice::identity::tests::build_memory_read_context_uses_speaker_confidence ... ok
[INFO] [stdout] test voice::identity::tests::fixed_provider_returns_configured_identity ... ok
[INFO] [stdout] test voice::identity::tests::local_biometric_enrolls_and_identifies_matching_voice ... ok
[INFO] [stdout] test voice::identity::tests::local_biometric_provider_builds_with_future_runtime_boundary ... ok
[INFO] [stdout] test voice::identity::tests::local_biometric_provider_returns_identity_when_profile_matches ... ok
[INFO] [stdout] test voice::intent::tests::accepts_direct_home_command ... ok
[INFO] [stdout] test voice::intent::tests::accepts_question ... ok
[INFO] [stdout] test voice::intent::tests::does_not_reject_short_status_style_request ... ok
[INFO] [stdout] test voice::intent::tests::rejects_ambient_narration ... ok
[INFO] [stdout] test voice::intent::tests::rejects_low_signal_filler ... ok
[INFO] [stdout] test voice::language::tests::configured_language_treats_auto_as_none ... ok
[INFO] [stdout] test voice::language::tests::detect_language_handles_chinese ... ok
[INFO] [stdout] test voice::language::tests::detect_language_handles_german ... ok
[INFO] [stdout] test voice::language::tests::detect_language_handles_spanish ... ok
[INFO] [stdout] test voice::language::tests::normalize_common_language_tags ... ok
[INFO] [stdout] test voice::language::tests::select_tts_model_prefers_language_specific_voice ... ok
[INFO] [stdout] test voice::noise::tests::highpass_removes_dc_offset ... ok
[INFO] [stdout] test voice::noise::tests::mic_agc_normalizes ... ok
[INFO] [stdout] test voice::noise::tests::noise_gate_preserves_speech ... ok
[INFO] [stdout] test voice::noise::tests::noise_gate_silences_quiet_audio ... ok
[INFO] [stdout] test voice::noise::tests::noise_suppression_reduces_quiet_frames ... ok
[INFO] [stdout] test voice::pipeline::tests::interaction_result_fields ... ok
[INFO] [stdout] test voice::pipeline::tests::voice_intent_gate_rejects_ambient_narration ... ok
[INFO] [stdout] test voice::streaming::tests::caps_at_max_sentences ... ok
[INFO] [stdout] test voice::streaming::tests::emits_first_sentence_mid_stream ... ok
[INFO] [stdout] test voice::streaming::tests::empty_stream_finishes_quietly ... ok
[INFO] [stdout] test voice::streaming::tests::fence_marker_split_across_chunks ... ok
[INFO] [stdout] test voice::streaming::tests::finish_flushes_trailing_fragment ... ok
[INFO] [stdout] test voice::streaming::tests::finish_returns_none_for_empty_input ... ok
[INFO] [stdout] test voice::streaming::tests::handles_chinese_punctuation ... ok
[INFO] [stdout] test voice::streaming::tests::handles_partial_token_chunks ... ok
[INFO] [stdout] test voice::streaming::tests::merges_too_short_opener_with_next_clause ... ok
[INFO] [stdout] test voice::streaming::tests::skips_fenced_code_blocks ... ok
[INFO] [stdout] test voice::streaming::tests::strips_bullet_prefix_at_sentence_start ... ok
[INFO] [stdout] test voice::streaming::tests::strips_markdown_bold_inline ... ok
[INFO] [stdout] test voice::streaming::tests::strips_markdown_links ... ok
[INFO] [stdout] test voice::streaming::tests::strips_raw_urls ... ok
[INFO] [stdout] test voice::stt::tests::clean_hallucinations_brackets ... ok
[INFO] [stdout] test voice::stt::tests::clean_hallucinations_ghost_phrases ... ok
[INFO] [stdout] test voice::stt::tests::clean_hallucinations_preserves_real_speech ... ok
[INFO] [stdout] test voice::stt::tests::create_cli_engine ... ok
[INFO] [stdout] test voice::stt::tests::create_cli_engine_with_language_hint ... ok
[INFO] [stdout] test voice::stt::tests::create_cli_engine_with_path ... ok
[INFO] [stdout] test voice::stt::tests::create_server_engine ... ok
[INFO] [stdout] test voice::stt::tests::temp_file_guard_removes_on_drop ... ok
[INFO] [stdout] test voice::stt::tests::transcribe_pcm_temp_paths_are_unique_under_concurrency ... ok
[INFO] [stdout] test voice::stt::tests::write_wav_header ... ok
[INFO] [stdout] test voice::tests::voice_memory_context_filters_person_memory ... ok
[INFO] [stdout] test voice::tts::tests::create_configured_engine ... ok
[INFO] [stdout] test voice::tts::tests::create_file_engine ... ok
[INFO] [stdout] test voice::tts::tests::create_pipe_engine ... ok
[INFO] [stdout] test voice_loop::tests::llm_status_messages_include_backend_name ... ok
[INFO] [stdout] test voice_loop::tests::llm_unreachable_message_is_backend_neutral ... ok
[INFO] [stdout] test skills::loader::tests::loader_malformed_trusted_key_is_not_trusted ... ok
[INFO] [stdout] test skills::loader::tests::loader_rejects_unknown_key_id ... ok
[INFO] [stdout] test skills::loader::tests::loader_toctou_disk_swap_after_load_has_no_effect ... ok
[INFO] [stdout] test skills::loader::tests::loader_rejects_tampered_so ... ok
[INFO] [stdout] test skills::loader::tests::loader_accepts_valid_signature ... ok
[INFO] [stdout] test tools::dispatch::tests::tool_defs_include_loaded_skills ... ok
[INFO] [stdout] test tools::dispatch::tests::execute_loaded_skill ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 712 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 25.11s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/genie_core-b6dd61bd57d89f64)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test tests::local_http_host_brackets_ipv6_literals ... ok
[INFO] [stdout] test tests::local_http_host_uses_loopback_for_wildcard_binds ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/memory_recall.rs (/opt/rustwide/target/debug/deps/memory_recall-a115c0403b4a9e2c)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test recall_policy_filtered_emits_labeled_miss_log ... ok
[INFO] [stdout] test recall_no_match_emits_labeled_miss_log ... ok
[INFO] [stdout] test recall_hit_does_not_emit_miss_log ... ok
[INFO] [stdout] test promoted_durable_filter_keeps_only_shared_safe_in_root ... ok
[INFO] [stdout] test memory_recall_test_set_meets_95_percent_floor ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.96s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/prompt_sha_test.rs (/opt/rustwide/target/debug/deps/prompt_sha_test-be8c74bffeca90b2)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test prompt_assembly_change_is_observable_in_sha ... ok
[INFO] [stdout] test identical_empty_boots_match ... ok
[INFO] [stdout] test identical_config_and_state_produce_identical_sha ... ok
[INFO] [stdout] test hydrated_state_change_is_observable_in_sha ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/tool_dispatch_test.rs (/opt/rustwide/target/debug/deps/tool_dispatch_test-0484260ca0de57ad)
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test core_binary_builds ... ok
[INFO] [stdout] test chat_ui_reflects_api_health_status ... ok
[INFO] [stdout] test geniepod_target_audio_is_optional ... ok
[INFO] [stdout] test genie_restart_all_hard_mode_performs_full_memory_reset ... ok
[INFO] [stdout] test genie_ai_runtime_service_preserves_model_page_cache ... ok
[INFO] [stdout] test genie_audio_service_checks_for_helper ... ok
[INFO] [stdout] test chat_ui_uses_animated_writing_indicator ... ok
[INFO] [stdout] test binary_size_budget ... ok
[INFO] [stdout] test makefile_installs_systemd_units_instead_of_copying_through_symlinks ... ok
[INFO] [stdout] test makefile_deploys_lifecycle_helpers ... ok
[INFO] [stdout] test restart_helper_skips_llm_service ... ok
[INFO] [stdout] test systemd_units_valid ... ok
[INFO] [stdout] test model_cache_status_helper_reports_residency ... ok
[INFO] [stdout] test start_all_uses_configured_llm_backend ... ok
[INFO] [stdout] test setup_script_privileged_llm_backend_patch_is_checked ... ok
[INFO] [stdout] test setup_script_warns_about_missing_audio_helper ... ok
[INFO] [stdout] test config_parses ... ok
[INFO] [stdout] test jetson_lifecycle_scripts_are_valid_shell ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/tool_gate_integration_test.rs (/opt/rustwide/target/debug/deps/tool_gate_integration_test-1b93fccf1d524a4d)
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test home_control_rejects_invalid_arguments_and_audits ... ok
[INFO] [stdout] test tool_gate_acl_denies_disallowed_origin_and_audits ... ok
[INFO] [stdout] test home_status_rejects_invalid_arguments_and_audits ... ok
[INFO] [stdout] test set_timer_rejects_invalid_arguments_and_audits ... ok
[INFO] [stdout] test gate_tool_call_rejects_denied_origin_and_audits ... ok
[INFO] [stdout] test play_media_rejects_invalid_arguments_and_audits ... ok
[INFO] [stdout] test tool_gate_confirmable_home_action_requires_token_and_audits ... ok
[INFO] [stdout] test tool_gate_confirmation_token_refused_without_pending ... ok
[INFO] [stdout] test tool_gate_confirmation_two_step_executes_within_ttl ... ok
[INFO] [stdout] test tool_gate_confirmation_without_first_leg_is_refused ... ok
[INFO] [stdout] test tool_gate_rate_limit_allows_n_then_denies_and_audits ... ok
[INFO] [stdout] test tool_gate_per_tool_rate_limit_bounces_after_n_and_audits ... ok
[INFO] [stdout] test tool_gate_audit_logs_are_append_only_and_record_all_dispatches ... ok
[INFO] [stdout] test memory_recall_rejects_invalid_arguments_and_audits ... ok
[INFO] [stdout] test tool_gate_confirmation_outside_ttl_errors ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.21s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/tools_test.rs (/opt/rustwide/target/debug/deps/tools_test-6860fd945aaa06bb)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test tool_parser_embedded_in_text ... ok
[INFO] [stdout] test tool_parser_accepts_name_field ... ok
[INFO] [stdout] test tool_parser_markdown_block ... ok
[INFO] [stdout] test tool_parser_no_tool_in_normal_text ... ok
[INFO] [stdout] test tool_parser_raw_json ... ok
[INFO] [stdout] test calculator_basic_ops has been running for over 60 seconds
[INFO] [stdout] test calculator_division_by_zero has been running for over 60 seconds
[INFO] [stdout] test calculator_fahrenheit_to_celsius has been running for over 60 seconds
[INFO] [stdout] test calculator_negative_numbers has been running for over 60 seconds
[INFO] [stdout] test calculator_order_of_operations has been running for over 60 seconds
[INFO] [stdout] test calculator_fahrenheit_to_celsius ... ok
[INFO] [stdout] test calculator_division_by_zero ... ok
[INFO] [stdout] test calculator_negative_numbers ... ok
[INFO] [stdout] test calculator_order_of_operations ... ok
[INFO] [stdout] test calculator_basic_ops ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 201.43s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/voice_loop_integration.rs (/opt/rustwide/target/debug/deps/voice_loop_integration-fd88135af1f89799)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test mock_stt_attaches_language_hint_to_transcript ... ok
[INFO] [stdout] test mock_llm_replays_replies_for_both_blocking_and_streaming_calls ... ok
[INFO] [stdout] test silent_tts_speak_returns_ok_without_spawning_piper ... ok
[INFO] [stdout] test mock_stt_replays_scripted_transcripts_in_order ... ok
[INFO] [stdout] test tool_dispatch_via_try_tool_call_writes_audit_log_event ... ok
[INFO] [stdout] test streaming_stream_and_speak_runs_end_to_end_with_silent_tts ... ok
[INFO] [stdout] test full_mock_voice_turn_persists_user_and_assistant_to_conversation_store ... ok
[INFO] [stdout] test mock_voice_cycle_drives_stt_then_llm_then_streaming_tts_then_tool_audit ... ok
[INFO] [stdout] test mock_voice_turn_handles_back_to_back_cycles_without_state_bleed ... ok
[INFO] [stdout] test process_transcript_ignores_empty_transcript ... ok
[INFO] [stdout] test process_transcript_drives_full_voice_cycle_with_mocks ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/genie_ctl-160e43992c901d5f)
[INFO] [stdout] 
[INFO] [stdout] running 41 tests
[INFO] [stdout] test bfcl_import::tests::skips_templates_with_unknown_slots ... ok
[INFO] [stdout] test bfcl_import::tests::parses_import_args_with_defaults ... ok
[INFO] [stdout] test bfcl_import::tests::renders_home_assistant_template_with_sample_slots ... ok
[INFO] [stdout] test tests::bfcl_llm_case_limit_scores_only_selected_cases ... ok
[INFO] [stdout] test tests::bfcl_llm_prompt_is_compact_and_tool_focused ... ok
[INFO] [stdout] test bfcl_import::tests::imports_sample_home_assistant_intents_with_source_metadata ... ok
[INFO] [stdout] test tests::api_probe_target_returns_https_api_target ... ok
[INFO] [stdout] test tests::core_addr_maps_listen_all_to_loopback_for_local_cli ... ok
[INFO] [stdout] test bfcl_import::tests::imports_all_languages_when_requested ... ok
[INFO] [stdout] test tests::core_addr_from_config_uses_bind_host_and_port ... ok
[INFO] [stdout] test tests::format_agent_harness_status_lists_failed_checks ... ok
[INFO] [stdout] test tests::api_probe_target_returns_addr_for_ipv6_without_port ... ok
[INFO] [stdout] test tests::format_agent_harness_status_reports_pass ... ok
[INFO] [stdout] test bfcl_import::tests::rejects_noncommercial_license_text ... ok
[INFO] [stdout] test tests::bfcl_predict_quick_writes_prediction_jsonl ... ok
[INFO] [stdout] test bfcl_import::tests::import_assigns_unique_case_ids_across_files ... ok
[INFO] [stdout] test tests::optional_http_probes_parses_https_homeassistant ... ok
[INFO] [stdout] test tests::optional_http_probes_includes_homeassistant_when_configured ... ok
[INFO] [stdout] test tests::optional_http_probes_skips_homeassistant_when_unconfigured ... ok
[INFO] [stdout] test tests::llm_service_label_includes_backend_when_known ... ok
[INFO] [stdout] test tests::parse_bfcl_predict_quick_args_supports_output_aliases ... ok
[INFO] [stdout] test tests::optional_http_probes_uses_configured_api_url ... ok
[INFO] [stdout] test tests::parse_bfcl_predict_llm_args_supports_runtime_options ... ok
[INFO] [stdout] test tests::parse_bfcl_score_args_rejects_missing_prediction_path ... ok
[INFO] [stdout] test tests::parse_bfcl_score_args_supports_equals_form ... ok
[INFO] [stdout] test tests::parse_bfcl_score_args_supports_required_paths_and_json ... ok
[INFO] [stdout] test tests::parse_bfcl_score_llm_args_supports_scoring_options ... ok
[INFO] [stdout] test tests::parse_search_args_rejects_invalid_limit ... ok
[INFO] [stdout] test tests::parse_search_args_supports_fresh_flag ... ok
[INFO] [stdout] test tests::parse_search_args_supports_limit_equals ... ok
[INFO] [stdout] test tests::parse_search_args_supports_limit_flag ... ok
[INFO] [stdout] test tests::parse_search_args_supports_no_cache_alias ... ok
[INFO] [stdout] test tests::support_bundle_default_path_is_json_under_tmp ... ok
[INFO] [stdout] test tests::systemd_unit_file_path_normalizes_unit_name ... ok
[INFO] [stdout] test tests::tail_jsonl_file_returns_recent_valid_events_in_original_order ... ok
[INFO] [stdout] test tests::version_string ... ok
[INFO] [stdout] test tests::parse_speaker_options_supports_recording_flags ... ok
[INFO] [stdout] test tests::parse_speaker_options_rejects_unknown_flag ... ok
[INFO] [stdout] test tests::remove_skill_by_name ... ok
[INFO] [stdout] test tests::install_and_list_skill ... ok
[INFO] [stdout] test tests::install_copies_and_remove_deletes_skill_manifest ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 41 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.30s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test governor::tests::llm_model_for_transition_selects_target_mode_weights ... ok
[INFO] [stdout] test governor::tests::mode_llm_model_selection ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/genie_governor-8f08fb7dd7c5218d)
[INFO] [stdout] test governor::tests::determine_mode_day_with_plenty_of_memory ... ok
[INFO] [stdout] test governor::tests::determine_mode_pressure_on_low_memory ... ok
[INFO] [stdout] test governor::tests::determine_mode_pressure_takes_priority ... ok
[INFO] [stdout] test governor::tests::rollback_restores_media_marker_when_media_stop_fails ... ok
[INFO] [stdout] test governor::tests::day_to_night_b_stops_ha_before_llm_swap_attempt ... ok
[INFO] [stdout] test governor::tests::mode_required_services ... ok
[INFO] [stdout] test governor::tests::rollback_restores_services_required_by_source_mode_after_stop ... ok
[INFO] [stdout] test governor::tests::rollback_stops_llm_when_returning_to_media_mode ... ok
[INFO] [stdout] test service_ctl::tests::normalizes_systemd_unit_names ... ok
[INFO] [stdout] test service_ctl::tests::llm_override_dir_uses_configured_unit ... ok
[INFO] [stdout] test governor::tests::rollback_restores_source_llm_weights_after_failed_swap ... ok
[INFO] [stdout] test governor::tests::skips_unconfigured_optional_services ... ok
[INFO] [stdout] test governor::tests::mode_stopped_services ... ok
[INFO] [stdout] test control::tests::read_control_line_rejects_oversized_input ... ok
[INFO] [stdout] test governor::tests::resolves_llm_alias_to_configured_service_unit ... ok
[INFO] [stdout] test governor::tests::night_model_swap_config ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/genie_health-3af902ba1e1db50b)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test checker::tests::core_endpoint_url_tracks_configured_core_port ... ok
[INFO] [stdout] test checker::tests::api_endpoint_url_uses_derived_status_url ... ok
[INFO] [stdout] test checker::tests::collect_endpoints_skips_unconfigured_homeassistant ... ok
[INFO] [stdout] test checker::tests::llm_endpoint_url_still_sources_from_services_config ... ok
[INFO] [stdout] test checker::tests::send_http_post_accepts_valid_http_status_line ... ok
[INFO] [stdout] test checker::tests::send_http_post_rejects_non_http_tcp_banner ... ok
[INFO] [stdout] test checker::tests::health_log_write_errors_do_not_panic_on_readonly_db ... ok
[INFO] [stdout] test checker::tests::send_http_post_rejects_http_500_status_line ... ok
[INFO] [stdout] test checker::tests::health_log_insert_and_prune_on_writable_db ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/genie_skill_hello-173ac6e60af2b7b5)
[INFO] [stdout] test checker::tests::api_endpoint_omitted_when_status_url_unsupported ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/genie_skill_sdk-adf4275dea457565)
[INFO] [stderr]    Doc-tests genie_common
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test args::tests::invalid_json ... ok
[INFO] [stdout] test args::tests::parse_args ... ok
[INFO] [stdout] test args::tests::missing_args ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests genie_core
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test crates/genie-core/src/security/credentials.rs - security::credentials::CredentialStore (line 88) ... ignored
[INFO] [stdout] test crates/genie-core/src/lib.rs - (line 8) - compile ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.74s; merged doctests compilation took 1.73s
[INFO] [stderr]    Doc-tests genie_skill_sdk
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test crates/genie-skill-sdk/src/lib.rs - (line 10) ... ignored
[INFO] [stdout] test crates/genie-skill-sdk/src/lib.rs - skill (line 57) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.42s; merged doctests compilation took 0.42s
[INFO] running `Command { std: "docker" "inspect" "5cdcfea904fd1e791d92bfbf655a4660146b4bfc090b44f05c88f59b5b2c1faf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5cdcfea904fd1e791d92bfbf655a4660146b4bfc090b44f05c88f59b5b2c1faf", kill_on_drop: false }`
[INFO] [stdout] 5cdcfea904fd1e791d92bfbf655a4660146b4bfc090b44f05c88f59b5b2c1faf
